#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
房型床位数据导出工具
从MongoDB导出房型床位数据到CSV文件
"""

import sys
import os
from room_exporter import RoomBedTypeExporter
from config import ROOM_EXPORT_CONFIG, ROOM_MONGODB_CONFIG


def main():
    """主函数"""
    print("\n" + "=" * 70)
    print("房型床位数据导出工具")
    print("=" * 70)
    
    # 创建导出器
    exporter = RoomBedTypeExporter()
    
    # 确保输出目录存在
    try:
        os.makedirs(ROOM_EXPORT_CONFIG['output_dir'], exist_ok=True)
        exporter.logger.info(f"输出目录: {os.path.abspath(ROOM_EXPORT_CONFIG['output_dir'])}")
    except Exception as e:
        exporter.logger.error(f"创建输出目录失败: {str(e)}")
        print("[ERROR] 导出失败！无法创建输出目录")
        return 1
    
    # 连接MongoDB并进行预检查
    print("正在连接MongoDB...")
    exporter.logger.info("正在连接MongoDB数据库...")
    if not exporter.connect_mongodb():
        exporter.logger.error("数据库连接失败，程序退出")
        print("[ERROR] 数据库连接失败！")
        return 1
    
    print("[OK] 数据库连接成功")
    exporter.logger.info("数据库连接成功")
    exporter.logger.info(f"正在获取集合: {ROOM_MONGODB_CONFIG['collection_name']}")
    if exporter.collection is None:
        exporter.logger.error("获取集合失败，程序退出")
        exporter.disconnect_mongodb()
        print("[ERROR] 无法获取集合！")
        return 1
    
    # 断开预检查连接（导出流程会自行管理连接）
    exporter.disconnect_mongodb()
    
    # 执行导出
    success = exporter.export()
    
    if success:
        return 0
    else:
        print("\n[ERROR] 导出失败！请查看日志文件了解详情")
        return 1


if __name__ == '__main__':
    sys.exit(main())

